package com.backend.modules.system.service;

import com.backend.common.utils.ExcelUtils.ImportResult;
import com.backend.modules.system.dto.ClassStudentQueryDTO;
import com.backend.modules.system.dto.StudentDTO;
import com.backend.modules.system.dto.StudentExcelDTO;
import com.backend.modules.system.entity.SysUser;
import com.backend.modules.system.vo.ClassTreeVO;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface TeacherClassService {
    
    /**
     * 获取教师负责的班级树
     */
    List<ClassTreeVO> getTeacherClassTree();
    
    /**
     * 获取班级学生列表
     */
    Page<SysUser> getClassStudents(Long classId, ClassStudentQueryDTO query, Pageable pageable);

    /**
     * 创建班级学生
     */
    void createStudent(Long classId, StudentDTO dto);

    /**
     * 更新班级学生
     */
    void updateStudent(Long classId, Long studentId, StudentDTO dto);

    /**
     * 删除班级学生
     */
    void deleteStudent(Long classId, Long studentId);

    /**
     * 重置学生密码
     */
    void resetStudentPassword(Long classId, Long studentId);

    /**
     * 更新学生状态
     */
    void updateStudentStatus(Long classId, Long studentId, Boolean status);

    /**
     * 导出班级学生
     */
    ResponseEntity<byte[]> exportStudents(Long classId);

    /**
     * 导入班级学生
     */
    ImportResult<StudentExcelDTO> importStudents(Long classId, MultipartFile file);

    /**
     * 下载学生导入模板
     */
    ResponseEntity<byte[]> downloadStudentTemplate();
} 